This document is an MRD (Marketing Requirements Document) for the ideal vision of what the WebWork IDEA Plugin will be. At this point, no WebWork IDEA plugin has been created. When it is created, it will be based on EclipseWork.

A key success for WebWork is its ability to provide tools that make developers lives easier. This isn't just some configuration editor, but rather a complex integrated environment where developers can write their code, build JSPs, and have much of the redundant work related to WebWork automated or assisted. WebWork's IDEA integration enables developers to not only write WebWork-based applications faster, but also with much higher quality.

The IDEA Plugin has the following features:

  • Configuration browser - you can browse namespaces and see both actions and views as well as their relationships. The browser lets you avoid hunting through xwork.xml and all the included files and instead presents a logical view of all your actions and their associated views. The browser also allows for very quick access to an action if you know it by name (and optional namespace).
  • Find by usages - finding usages on a field will show you were all the views that use that field are located.
  • Refactoring support - similar to find by usages, it is very useful to rename a field in an action (or even an object that is someone in the stack/object graph) and know that all the views that reference it have been updated as well
  • Internationalization support - you can select text in a JSP or other views and automatically extract it in to the a choice of the correct resource bundles (package.properties, Action.properties, etc). Conversely, you can press Ctrl-Q on <ww:text/> tags to see what the actual text for a particular i18n key are.
  • Error reporting - the plugin is excellent at notifying you of errors before you deploy your application. Since many aspects of WebWork are based around loosely coupled and dynamic interactions, the plugin helps you see when you've had a typo such as "doccument" instead of "document". It highlights errors in OGNL expressions, i18n locations, and configuration mixups automatically for you. When these errors happen the plugin also gives you a choice of possible fixes (Ctrl-Enter).
  • Code completion - when using WebWork tags such as <ww:select value="..."/> pressing Ctrl-Space pops up a code completion dialog that introspects through all the available properties that are in the value stack, including those in your action.
  • OGNL expression evaluator - When you're editing a page you should be able to have an OGNL expression evaluator that can execute your action and use its properties to evaluate OGNL expressions to show you what you get.